package com.ztgf.order.models.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ztgf.common.annotations.CustomerBigDecimalSerialize;
import com.ztgf.order.models.dto.pay.PayOrderLogDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * author: chenyu.wang
 * date: 2020-07-01 14:10
 * Description:
 */
@Data
public class OrderInfoPageListVO implements Serializable {

    @ApiModelProperty(value = "订单表id")
    private Long id;
    @ApiModelProperty(value = "订单创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "到期时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireDate;
    @ApiModelProperty(value = "赊销支付时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date paymentExpireDate;
    @ApiModelProperty(value = "订单编号")
    private String orderNo;
    @ApiModelProperty(value = "支付方式：0全款、1分批")
    private Integer payType;
    @ApiModelProperty(value = "配送方式：保留字段")
    private Integer deliveryType;
    @ApiModelProperty(value = "卖家店铺id")
    private Long sellShopId;
    @ApiModelProperty(value = "买家店铺id")
    private Long buyShopId;
    @ApiModelProperty(value = "类型 0普通、1询价")
    private Integer type;
    @ApiModelProperty(value = "下单类型 0普通 1代客下单")
    private Integer placeOrderType;
    @ApiModelProperty(value = "卖家名称")
    private String sellerName;
    @ApiModelProperty(value = "买家名称")
    private String buyerName;
    @ApiModelProperty(value = "订单状态 0待确定、1待签合同、2待付款、3待发货、4待签收、5已签收、6买家取消、7卖家已取消,20，异常订单（倒计时归0）")
    private Integer orderState;
    @ApiModelProperty(value = "合同状态 0未签订、1买家签订、2卖家签订、3已签订")
    private Integer contactState;
    @ApiModelProperty(value = "发票状态 0未开票、1申请中、2已开票")
    private Integer invoiceState;
    @ApiModelProperty(value = "评价状态 0未评价、1已评价")
    private Integer evaluationState;
    @ApiModelProperty(value = "卖家删除状态 0未删除、1已删除")
    private Integer sellerDeleteState;
    @ApiModelProperty(value = "买家删除状态 0未删除、1已删除")
    private Integer buyersDeleteState;
    @ApiModelProperty(value = "货物生产状态 0未生成、1生产中、2生产完成")
    private Integer goodsProductionState;
    @ApiModelProperty(value = "卖家维权状态 0未维权、1申请中、2同意、3不同意")
    private Integer sellerActivistState;
    @ApiModelProperty(value = "买家维权状态 0未维权、1申请中、2同意、3不同意")
    private Integer buyersActivistState;
    @ApiModelProperty(value = "是否过期 0未过期 1过期")
    private Integer isExpiration;
    @ApiModelProperty(value = "发货方式 0全部发货，1部分发货")
    private Integer shipWay;
    @ApiModelProperty(value = "催促发货 0未催促 1催促")
    private Integer urgeDeliverGoods;
    @ApiModelProperty(value = "催促签订 0未催促 1催促")
    private Integer urgeSign;
    @ApiModelProperty(value = "实际佣金")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal lastCommissionMoney;
    @ApiModelProperty(value = "订单商品")
    private List<OrderInfoGoodsVO> orderItem;
    @ApiModelProperty(value = "支付类型")
    private List<OrderPaymentTypeVO> orderPaymentTypeVOItem;
    @ApiModelProperty(value = "商品数")
    private Integer goodsNum;
    @ApiModelProperty(value = "订单支付明细")
    private List<OrderInfoPayVO> payDetails;
    @ApiModelProperty(value = "卖家店铺类型 0 担保交易 1先款交易")
    private Integer sellPayType;
    @ApiModelProperty(value = "预计佣金")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal commissionMoney;
    @ApiModelProperty(value = "订单合同是否存在附件:0否,1是")
    private Integer isAttachmentExists = 0;
    @ApiModelProperty(value = "订单取消时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;
    @ApiModelProperty(value = "退款时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;
    @ApiModelProperty(value = "询盘订单主办人名称")
    private String organiserUserName;
    @ApiModelProperty(value = "佣金退款和支付")
    private List<PayOrderLogDTO> payOrderLogDTOList;
    @ApiModelProperty(value = "卖家签订截止时间0:未截止；1截至")
    private Integer signStatus;
    @ApiModelProperty(value = "待发货截止时间0:未截止；1截至")
    private Integer sendStatus;
    @ApiModelProperty(value = "备货截止时间0:未截止；1截至")
    private Integer readyStatus;
    @ApiModelProperty(value = "待签收截止时间0:未截止；1截至")
    private Integer reciveStatus;
    @ApiModelProperty(value = "待支付截止状态0:未截止；1截至")
    private Integer payStatus;
    @ApiModelProperty(value = "当期应付")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal currentStall;
    @ApiModelProperty(value = "签收状态 0未签收 1签收中 2已签收")
    private Integer receiveStatus;

    @ApiModelProperty(value = "票据支付状态:0未支付、1支付中")
    private Integer billPayStatus;
    @ApiModelProperty(value = "票据名称")
    private String billName;
    @ApiModelProperty(value = "票据图片")
    private String billUrl;

    @ApiModelProperty(value = "佣金支付状态:0未开始，1支付中、2已解冻、3解冻失败")
    private Integer commissionPayStatus;

}
